package org.liziyi.pss.model.queue;

import org.liziyi.pss.entity.ProcessControlBlock;
import org.liziyi.pss.util.ProcessUtil;

import javax.swing.*;
import javax.swing.table.TableModel;

/**
 * 挂起队列
 * 挂起队列中的add,poll等方法不需要同步措施，因为它只在主事件循环线程中被调用
 * @author liziyi
 */
public class SuspendQueue extends AbstractScheduleQueue{
    public SuspendQueue(TableModel model){
        super(model);
    }

    /**
     * 根据pid从挂起队列中移除进程
     * @param pid
     * @return
     */
    public synchronized ProcessControlBlock remove(int pid) {
        for(int i=0;i<queueList.size();i++){
            if(queueList.get(i).getPid()==pid){
                return super.remove(i);
            }
        }
        return null;
    }
}
